package com.bigzero.workflow.modules.process.service;

import com.bigzero.workflow.common.model.TableDataInfo;
import com.bigzero.workflow.common.dto.DeployProcessDto;
import com.bigzero.workflow.modules.process.query.DefinitionQuery;

import java.util.Map;

/**
 * 流程定义service
 *
 * @author fanxinxiong
 * @email 896934834@qq.com
 * @date 2025-02-12 17:27:47
 */
public interface DefinitionService {

    /**
     * 流程管理列表
     * @param query 参数
     * @return 列表
     */
    TableDataInfo queryPage(DefinitionQuery query);

    /**
     * 获取流程定义xml
     * @param deploymentId 部署id
     * @return 流程xml字符串
     */
    String getDefinitionXml(String deploymentId);

    /**
     * 获取流程定义详情
     * @param deploymentId 部署id
     * @return 流程xml字符串和流程表单
     */
    Map<String, Object> getDefinitionInfo(String deploymentId);

    /**
     * 更新流程定义状态 激活或者挂起
     * @param deploymentId 部署id
     */
    void updateState(String deploymentId);

    /**
     * 部署流程
     * @param dto 参数
     */
    void deployProcess(DeployProcessDto dto);

    /**
     * 删除流程
     * @param deploymentId 部署id
     */
    void delete(String deploymentId);
}
